JSON output

The JSON standard (JavaScript Object Notation) is an open, text-based data format, designed for human-readable data interchange. Despite its descendance from JavaScript - you need JavaScript to process it, XSLT can't be used - it is language-independent. JSON is more lightweight than XML (about half the data) and therefore faster to process. Another advantage is that JSON is allowed in cross domain AJAX requests.
More general information about JSON can be found here:

A number of WebAPI wwwopac.ashx commands have two optional JSON-specific arguments available: output and callback:

JSON output supported by OAI.ashx from version 3.0.21252.1

From WebAPI version 3.0.21252.1, oai.ashx produces JSON (implicitly of the more compact type) if the new setting: <output>json</output> has been configured in the <globalConfiguration> section in the adlibweb.xml configuration file. If you do not configure this option, the OAI result will be grouped XML. The output=xml or output=json query arguments (as supported for wwwopac.ashx) cannot be used for oai.ashx. This OAI functionality is not hindered or influenced by the XML type setting for wwwopac.ashx and vice versa the JSON format or XML type settings for wwwopac.ashx are not hindered by the JSON option for OAI, but if no <jsonFormat> has been specified for wwwopac.ashx then the <output>json</output> setting will cause wwwopac.ashx and oai.ashx (the latter from version 3.0.21273.1) to spit out JSON of the jsonv1 type unless (for wwwopac.ashx) the URL has an output=xml argument: a jsonFormat=standard argument won't work in that case.

At first, OAI jsonv1 type output was missing data about deleted records and resumption tokens, but this was fixed in 3.0.21277.1. For enumerative fields a difference remains between the pre-3.0.21277 version of jsonv1 and the new version of jsonv1: spans are missing for this field type, element “lang” is now “@lang” and element “text” is now “#text”: this will not be fixed.